home *** CD-ROM | disk | FTP | other *** search
-
- Listing 1
- =========
-
- /* Header for memory blocks */
- typedef struct MEMBLOCK {
- struct MEMBLOCK *mb_next, /* Pointer to next block */
- *mb_pres; /* Present block */
- int mb_size, /* Size of blocks */
- mb_offs; /* Present offset in block */
- } MemBlock;
-
- unsigned int iniz_borrow(), deiniz_borrow(), return_borrow();
- char *borrow();
-
-
- /* -------------------------------------------------------- */
-
- /* Initialise memory */
-
- /* Returns the memory ID or zero on error */
-
- unsigned int iniz_borrow(block)
- register int block; /* Allocation block size */
- {
- register MemBlock *p; /* Pointer to block */
-
- /* Get first block */
- if((int)(p=(MemBlock *)allocate(block))==0)
- return(0);
- p->mb_next=NULL; /* No next block */
- p->mb_pres=p; /* This is the present block */
- p->mb_size=block; /* Record the block size */
- p->mb_offs=sizeof(MemBlock); /* Start past this info */
-
- return((unsigned int)p);
- }
-
-
-